var u = navigator.userAgent;
var mobile;
if (u.indexOf('Android') > -1 || u.indexOf('Linux') > -1) {
	mobile = "android";
} else if (u.indexOf('iPhone') > -1) {
	mobile = "iphone";
} else if (u.indexOf('Windows Phone') > -1) {
	mobile = "winphone";
} else {
	mobile = "pc";
}
var script_array = [ "js/jquery-1.9.1.min.js",];
function getRootPath() {
	var curWwwPath = window.document.location.href;
	var pathName = window.document.location.pathname;
	var pos = curWwwPath.indexOf(pathName);
	var localhostPaht = curWwwPath.substring(0, pos);
	var projectName = pathName
			.substring(0, pathName.substr(1).indexOf('/') + 1);
	return (localhostPaht + projectName + "/");
}
for ( var i = 0; i < script_array.length; i++) {
	document.write('<script language=javascript src="' + script_array[i] + '"></script>');
}
Array.prototype.remove = function (index) {  
    if (isNaN(index) || index > this.length) {  
        return false;  
    }
    array.splice(index,1); 
};
String.prototype.replaceAll = function(_reg, _str){
	var reg = new RegExp(_reg, "g");
	var newstr=this.replace(reg, _str);
	return newstr;
}
/**
 * 格式化日期 by csdn's Meizz
 */
Date.prototype.format = function(fmt){
	fmt || (fmt = "yyyy-MM-dd hh:mm:ss");
	var o = {
		"M+" : this.getMonth()+1,	//月份
		"d+" : this.getDate(),		//日   
		"h+" : this.getHours(),		//小时   
		"m+" : this.getMinutes(),	//分   
		"s+" : this.getSeconds(),	//秒
		"S"  : this.getMilliseconds()	//毫秒
	};
	if(/(y+)/.test(fmt))fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));
	for(var k in o)
	{
		if(new RegExp("("+ k +")").test(fmt))fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
	}
	return fmt;
}
setInterval(function(){
	if(Utils && typeof(myScroll)!="undefined"){
		myScroll.scrollerWidth	= myScroll.scroller.offsetWidth;
		myScroll.scrollerHeight	= myScroll.scroller.offsetHeight;
		myScroll.maxScrollX		= myScroll.wrapperWidth - myScroll.scrollerWidth;
		myScroll.maxScrollY		= myScroll.wrapperHeight - myScroll.scrollerHeight;
	}
},1000);
var Utils = {
	removeJsComments : function(code)   {     
	    return code.replace(/(?:^|\n|\r)\s*\/\*[\s\S]*?\*\/\s*(?:\r|\n|$)/g, '\n').replace(/(?:^|\n|\r)\s*\/\/.*(?:\r|\n|$)/g, '\n');   
	},
	lazyLoadImg : function(){
		/***********************ajax图片延迟加载********************************/
		var all_img = $('img');
		var img = new Array();
		for(var i=0; i<all_img.length; i++){
			if(all_img[i].dataset.original != null){
				img.push(all_img[i]);
			}
		}
		img = $(img);
		img.lazyload({
		    effect: 'fadeIn',
		    threshold : 99999,
		    load : function(){
				this.removeAttribute('data-original');
			}
		});
		/***********************ajax图片延迟加载********************************/
	},
	toAttribute : function(str){
		var re;
		re = /&/g;
		str = str.replace(re,"&amp;");
		re = /</g;
		str = str.replace(re,"&lt;");
		re = />/g;
		str = str.replace(re,"&gt;");
		re = /"/g;
		str = str.replace(re,"&quot;");
		re = /\r/g;
		str = str.replace(re,"");
		re = /\n/g;
		str = str.replace(re,"");
		return str;
	},
	toText : function(str){
		var re;
		re = /&/g;
		str = str.replace(re,"&amp;");
		re = /</g;
		str = str.replace(re,"&lt;");
		re = />/g;
		str = str.replace(re,"&gt;");
		re = /"/g;
		str = str.replace(re,"&quot;");
		re = /\r\n/g;
		str = str.replace(re,"\n");
		re = /\n/g;
		str = str.replace(re,"<br/>");
		re = /\t/g;
		str = str.replace(re,"&nbsp;&nbsp;&nbsp;&nbsp;");
		re = / /g;
		str = str.replace(re,"&nbsp;");
		return str;
	},
	arrivedBottom : function(){
		//滚动条在Y轴上的滚动距离 
		function getScrollTop(){
			var scrollTop = 0, bodyScrollTop = 0, documentScrollTop = 0;
			if(document.body){
			　　bodyScrollTop = document.body.scrollTop;
			}
			if(document.documentElement){
			　　documentScrollTop = document.documentElement.scrollTop;
			}
			scrollTop = (bodyScrollTop - documentScrollTop > 0) ? bodyScrollTop : documentScrollTop;
			return scrollTop;
		} 
		//文档的总高度 
		function getScrollHeight(){
			var scrollHeight = 0, bodyScrollHeight = 0, documentScrollHeight = 0;
			if(document.body){
			　　bodyScrollHeight = document.body.scrollHeight;
			}
			if(document.documentElement){
			　　documentScrollHeight = document.documentElement.scrollHeight;
			}
			scrollHeight = (bodyScrollHeight - documentScrollHeight > 0) ? bodyScrollHeight : documentScrollHeight;
			return scrollHeight;
		} 
		//浏览器视口的高度 
		function getWindowHeight(){
			var windowHeight = 0;
			if(document.compatMode == "CSS1Compat"){
			　　windowHeight = document.documentElement.clientHeight;
			}else{
			　　windowHeight = document.body.clientHeight;
			}
			return windowHeight;
		}
		if(getScrollTop() + getWindowHeight() >= getScrollHeight()-10){
			return true;
		}else{
			return false;
		}
	},
	getParam : function(name) {
		var r = window.location.search.substr(1).match(
				new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"));
		if (r != null)
			return unescape(r[2]);
		return null;
	},
	touch : function (c, f){
		var t = event.currentTarget;
		if (!t.zTouch) {
			t.zTouch = new zyClick(t, f, c);
			t.zTouch._touchStart(event);
		}
	},
	imgResize : function(str,width,height){
		var index = str.lastIndexOf('.');
		var str_before = str.substr(0,index);
		var str_last = str.substr(index);
		if(width){
			str = str_before+"_"+width;
		}
		if(height){
			str += "x" + height + str_last;
		}
		return str;
	},
	lazy_imgResize : function(str,width,height){
		var test = /<img [^>]*data-original=['"]([^'"]+)([^>]*>)/gi;
		var result = [];
		var img ;
		var _str = str;
		var is_lazy = false;
		while(img = test.exec(str)){
			is_lazy = true;
			var index = img[1].lastIndexOf('.');
			var str_before = img[1].substr(0,index);
			var str_last = img[1].substr(index);
			if(width && height){
				_str = _str.replace(img[1],str_before+'_'+width+'x'+height+str_last);
			}
			if(width && !height){
				_str = _str.replace(img[1],str_before+'_'+width+str_last);
			}
		}
		if(!is_lazy){
			test = /<img [^>]*src=['"]([^'"]+)([^>]*>)/gi;
       		result = [];
       		img ;
       		_str = str;
       		while(img = test.exec(str)){
       			var index = img[1].lastIndexOf('.');
       			var str_before = img[1].substr(0,index);
       			var str_last = img[1].substr(index);
       			if(width && height){
       				_str = _str.replace(img[1],str_before+'_'+width+'x'+height+str_last);
       			}
       			if(width && !height){
       				_str = _str.replace(img[1],str_before+'_'+width+str_last);
       			}
       		}
		}
		return _str;
	},
	/**
	 * 源生接口,弹出确认框
	 * msg:提示中的消息体
	 * callback:要在当前页面执行的js函数体
	 */
	confirm : function(msg, callBack) {
		if(mobile == "pc") {
			if (confirm(msg)) {
				callBack();
			}
		}else{
			window.utils.confirm(msg.toString(), Utils.removeJsComments(callBack.toString()));
		}
	},
	/**
	 * 源生接口，弹出提示框
	 * msg:提示中的消息体
	 */
	alert : function(msg) {
		if(mobile == "pc") {
			alert(msg);
		}else{
			window.utils.alert(msg);
		}
	},
	/**
	 * 源生接口，底部弹出信息提示，3秒后自动消失
	 * msg:提示中的消息体
	 */
	toast : function(msg) {
		if(mobile == "pc") {
			alert(msg);
		}else if(mobile == "android"){
			window.utils.toast(msg);
        }else{
            window.utils.toastWithTitle(msg);
        }
	},
	/**
	 * 源生接口,页面跳转
	 * url:页面文件名称
	 * 布局字符串
	 */
	toPage : function(url,layout) {
		if(layout==null && !layout){
			layout = "";
		}
		if(mobile == "pc") {
			window.location.href = url;
		}
		if(mobile == "android"){
			if(typeof(layout) == "object"){
				layout = JSON.stringify(layout);
			}
			window.utils.toPage(url,layout);
		}
		if(mobile == "iphone"){
			window.utils.ajaxWithUrlParamsCallBack(url,JSON.stringify(params),callBack);
		}
	},
	/**
	 * 源生接口，底部弹出框，有两个选项，分别为“从相册选取、拍照”
	 * callBackName:获取图片后回调的方法名，并将图片在手机中的存储路径传入函数
	 */
	getIMG : function(callBack,quality) {
		if(!quality){
			quality = 0;
		}
		if(mobile == "android"){
			window.utils.getIMG(Utils.removeJsComments(callBack.toString()),quality);
		}
		if(mobile == "iphone"){
			window.utils.getIMGWithQuality(Utils.removeJsComments(callBack.toString()),quality);
		}
		
	}, 
	/**
	 * 源生接口，发起源生HTTP请求
	 * url：请求地址
	 * params:请求参数，参数格式为json的字符串
	 * callback:回调方法名，回调时需传递数据
	 */
	ajax : function(url,params,callBack) {
		if (mobile == "pc") {
			$.ajax({
				url : url,
				type : "GET",
				data : params,
				dataType : 'jsonp',
				jsonp : 'jsoncallback',
				timeout : 5000,
				complete : function(XMLHttpRequest, status) {
					if(status=='timeout'){
						Utils.loading_hide();
				 　　　	Utils.toast("网络请求超时,请检查网络！");
				　　　}
				},
				beforeSend : function() {
//					Utils.loading_show();
				},
				error : function() {
//					Utils.loading_hide();
				},
				success : function(data) {
//					Utils.loading_hide();
					callBack(data);
				}
			});
		}
		if(mobile == "android"){
			var data = window.utils.ajax(url,JSON.stringify(params));
			callBack(JSON.parse(data));
		}
		if(mobile == "iphone"){
			window.utils.ajaxWithUrlParamsCallBack(url,JSON.stringify(params),callBack);
		}
	},
    ajaX : function(url,params,callBack) {
        window.utils.ajaxWithFunctionAndUrlAndParameters(callBack,url,params);
    },
	/**
	 * 源生接口，获取当前GPS数据的json格式字符串，包括latitude，longitude，radius，address，city，cityCode
	 */
	getLocalGPS : function(){
		return window.utils.getLocalGPS();
	},
	/**
	 * 拨打电话
	 * telNumber:电话号码
	 */
	callPhone : function(telNumber){
		if(mobile == "pc") {
			window.location.href = "tel:"+teNumber;
		}else{
			window.utils.callPhone(telNumber);
		}
	},
	/**
	 * 获取会话级缓存里的值(关闭应用后会被清理的缓存)
	 * key:缓存KEY
	 */
	getStorage : function(key){
		if(mobile == "pc") {
			data = window.localStorage.getItem(key);
		}else{
			data = window.utils.getStorage(key);
		}
		return data;
	},
	/**
	 * 保存会话级缓存里的值
	 * key:缓存KEY
	 * value:缓存value
	 */
	setStorage : function(key,value){
		if(mobile == "pc") {
			window.localStorage.setItem(key,value);
		}
		if(mobile == "android"){
			window.utils.setStorage(key,value);
		}
		if(mobile == "iphone"){
			window.utils.setStorageWithKeyValue(key,value);
		}
	},
	/**
	 * 保存应用级缓存里的值(应用不被卸载就一直存在的缓存)
	 * key:缓存KEY
	 */
	getApplication : function(key){
		if(mobile == "pc") {
			return window.localStorage.getItem(key);
		}else{
			return window.utils.getApplication(key);
		}
	},
	setApplication : function(key,value){
		if(mobile == "pc") {
			window.localStorage.setItem(key,value);
		}
		if(mobile == "android"){
			window.utils.setApplication(key,value);
		}
		if(mobile == "iphone"){
			var kandv={
            };    
			kandv[key]=value;
			window.utils.setApplicationWithJsonDic(JSON.stringify(kandv));
		}
	},
	/**
	 * 清空所有会话级缓存里的值
	 */
	clearStorage : function(){
		if(mobile == "pc") {
			window.localStorage.clear();
		}else{
			window.utils.clearStorage();
		}
	},
	/**
	 * 清空所有应用级缓存
	 */
	clearApplication : function(){
		if(mobile == "pc") {
			window.localStorage.clear();
		}else{
			window.utils.clearApplication();
		}
	},
	slidingMenu : function(url,left_right){
		window.utils.slidingMenu(url,left_right);
	},
	/**
	 * 关闭窗体
	 * url : 由于页面基于tab模式，url代表的是activity/controller的key，而非webview载入的页面文件名称，如果没有传递这个参数，则关闭当前页面
	 */
	closeWindow : function(url){
		if(mobile == "pc") {
			window.history.back();
		}else{
			window.utils.closeWindow(url);
		}
	},
	/**
	 * 弹出年月日选择
	 * callBack : 选择完后调用的当前页面方法名，需要传递年，月，日三个参数
	 */
	datePicker : function(callBack){
		window.utils.datePicker(callBack.toString());
	},
	/**
	 * 获取当前屏幕分辨率
	 */
	getResolution : function(){
		return window.utils.getResolution();
	},
	/**
	 * 获取IMEI
	 */
	getIMEI : function(){
		return window.utils.getIMEI();
	},
	/**
	 * 
	 * 执行一个指定已打开html页面中的方法
	 * url :HTML名称
	 * callBack:回调函数
	 * callBackParams：回调函数接收的参数
	 */
	excuteWebViewFunction : function(url,callBack,callBackParams){
		if(mobile == "android"){
			window.utils.excuteWebViewFunction(url,Utils.removeJsComments(callBack.toString()),callBackParams);
		}
		if(mobile == "iphone"){
			window.utils.excuteWebViewFunctionWithUrlCallBackBodyParams(url,Utils.removeJsComments(callBack.toString()),callBackParams);
		}
	},
	/**
	 * 切换当前页面的tab
	 */
	changeTab : function(index){
		window.utils.changeTab(index);
	},
	pay_alipay : function(subject, body, price, orderNum,pay_notify_url,callBack){
		if(mobile == "android"){
			window.utils.pay_alipay(pid, subject, body, price, orderNum, pay_notify_url, pay_return_url,Utils.removeJsComments(callBack.toString()));
		}
		if(mobile == "iphone"){
			window.utils.aliPayWithTradeNOProductNameDescriptionAmountNotify(orderNum,subject,body,price,toPageUrl);
		}
		
	},
	pay_weixin : function(price, notify_url, goodsName, ordNo){
		if(mobile == "android"){
			window.utils.pay_weixin(APP_ID, MCH_ID, API_KEY, price, notify_url, goodsName, ordNo);
		}
		if(mobile == "iphone"){
			window.utils.wxPayWithPrepayIdNotify(ordNo,notify_url);
		}
	},
	/**
	 * 关闭跳页动画
	 */
	closeLoadView : function(){
		if(mobile == "pc") {
			
		}else{
			window.utils.closeLoadView();
		}
	},
	/**
	 * 文件上传
	 * RequestURL：上传地址
	 * fileUrl：文件本地存储地址
	 * objectName：上传该文件时，服务端用于接收文件的参数名
	 */
	upLoad : function(RequestURL,fileUrl,paramsName,params){
		if(mobile == "android"){
			return window.utils.upload(RequestURL,fileUrl,paramsName,params);
		}
		if(mobile == "iphone"){
			window.utils.uploadImgWithActionUrlFileUrlParamNameIdsCallBack(RequestURL,fileUrl,paramsName,params,"");
		}
	},
	/**
	 * 调用百度导航
	 */
	openWebBaiduMapNavi : function(start_latitude,start_longitude,end_latitude,end_longitude){
		var params = {
			'start_latitude' : start_latitude,
			'start_longitude' : start_longitude,
			'end_latitude' : end_latitude,
			'end_longitude' : end_longitude
		}
		window.utils.openWebBaiduMapNavi(JSON.stringify(params));
	},
	/**
	 * 检查是否打开过url的webview
	 */
	checkUrl : function(url){
		return window.utils.isUrlLoad(url);
	},
	/**
	 * 微信登录
	 * callBack回调方法字符串
	 */
    weChatLogin : function(html, callBack){
		if(mobile == "android"){
			window.utils.weChatLogin(APP_ID,html, Utils.removeJsComments(callBack.toString()));
		}
		if(mobile == "iphone"){
			window.utils.wxLoginWithCallBack(Utils.removeJsComments(callBack.toString()));
		}
    },
    /**
	 * 微信分享网页
	 * 
	 * @param shareType 	1 分享到朋友圈
	 * 						2 分享到聊天页面(发送给朋友)
	 * 						3 添加到收藏 
	 * 
	 * @param webpageUrl	分享网页路径
	 * @param title			分享标题
	 * @param description	分享描述
	 * @param imgType		分享图片类型 0 本地assets图片 1 网络图片
	 * @param imgPath		分享图片路径(图片大小不能超过32kb)
	 * @param callBack		回调函数
	 */
    weChatShareUrl : function(shareType,webpageUrl,title,description,imgType,imgPath,html,callBack){
    	if(mobile == "android"){
    		window.utils.weChatShareUrl(APP_ID,shareType,webpageUrl,title,description,imgType,imgPath,html,Utils.removeJsComments(callBack.toString()));
		}
		if(mobile == "iphone"){
			window.utils.wxShareWithTitleDescriptionImgPathImgTypeShareTypeWebpageUrl(title,description,imgPath,imgType,shareType,webpageUrl);
		}
    },
    /**
     * QQ登录
     * callBack回调方法字符串
     */
    qqLogin : function(html,callBack){
    	if(mobile == "android"){
    		window.utils.qqLogin(qqAppId, html,Utils.removeJsComments(callBack.toString()));
		}
		if(mobile == "iphone"){
			window.utils.QQloginWithAppidCallBack(qqAppId,Utils.removeJsComments(callBack.toString()));
		}
    	
    },
    /**
     * 退出qq登录
     */
    qqLogout : function(){
    	window.utils.qqLogout();
    },
    /**
	 * 分享到qq
	 * @param shareType 分享类型	1 图文分享 2 分享纯图片 3 分享音乐
	 * @param JSONparams 分享参数 JSON格式
	 * 				*为必填
	 * 					1 图文分享
	 *  			*	url : 这条分享消息被好友点击后的跳转URL。
	 *  			*	title : 分享的标题, 最长30个字符。
	 *  				summary : 分享的消息摘要，最长40个字。
	 *  				imgUrl : 分享图片的URL或者本地路径 
	 *  				imgUrlType : 0 assets文件路径 1 网络图片路径 传imgUrl 必传此参数
	 *  				appName : 手Q客户端顶部，替换“返回”按钮文字，如果为空，用返回代替,
	 *					ext_int : 分享额外选项，两种类型可选（默认是不隐藏分享到QZone按钮且不自动打开分享到QZone的对话框）。
	 * 								1 : 分享时自动打开分享到QZone的对话框。
	 * 								0 : 分享时隐藏分享到QZone按钮
	 * 
	 * 					2 分享纯图片
	 * 				*	imgUrl : 需要分享的本地图片路径。
	 * 					appName : 同1
	 * 					ext_int : 同1
	 * 
	 * 					3分享音乐
	 * 				*	url : 同1
	 * 				*	audioUrl : 音乐文件的远程链接, 以URL的形式传入, 不支持本地音乐。
	 * 				*	title : 同1
	 * 					summary : 同1
	 * 					imgUrl : 同1
	 * 					imgUrlType : 0 assets文件路径 1 网络图片路径 传imgUrl 必传此参数
	 * 					appName : 同1
	 * 					ext_int : 同1
	 * @param html 调用qq分享的页面
	 * @param callBack 回调函数
	 */
    qqShare : function(shareType,JSONparams,html,callBack){
    	if(mobile == "android"){
    		window.utils.qqShare(qqAppId, shareType,JSON.stringify(JSONparams),html,Utils.removeJsComments(callBack.toString()));
		}
		if(mobile == "iphone"){
			var params = {
                shareType:shareType,
                url:JSONparams.url,
                title:JSONparams.title
            };
			window.utils.QQShareWithAppidParamsCallBack(qqAppId,JSON.stringify(params),Utils.removeJsComments(callBack.toString()));
		}
    	
    },
    /**
	 * 分享到qq空间
	 * 
	 * @param JSONparams	分享参数 JSON格式
	 * 						*为必填
	 * 
	 * 					*	url : 需要跳转的链接，URL字符串。
	 * 					*	title : 分享的标题，最多200个字符。
	 * 						summary : 分享的摘要，最多600字符。
	 * 						imgUrl : 分享图片的URL 数组形式 []
	 * @param html 调用分享到qq空间的页面
	 * @param callBack 回调函数
	 */
    shareToQzone : function(JSONparams,html,callBack){
    	if(mobile == "android"){
    		window.utils.shareToQzone(qqAppId, JSON.stringify(JSONparams),html,Utils.removeJsComments(callBack.toString()));
		}
		if(mobile == "iphone"){
			window.utils.QQZoneShareWithAppidParamsCallBack(qqAppId,JSON.stringify(JSONparams),Utils.removeJsComments(callBack.toString()));
		}
		
    	
    },
    /**
	 * 新浪微博登录
	 * 
	 * @param html 调用新浪微博登录的页面
	 * @param callBack 回调函数
	 */
    sinaWeiboLogin : function(html,callBack){
    	window.utils.sinaWeiboLogin(sinakey, html,Utils.removeJsComments(callBack.toString()));
    },
    /**
	 * 微博分享
	 * 
	 * @param paramsJSON	分享参数 JSON格式
	 * 						*为必填
	 * 
	 * 						text : 分享文字
	 *						imgUrl : 分享图片路径(图片大小不能超过32kb)
	 *						imgType : 分享图片类型 0 本地assets图片 1 网络图片 (传imgUrl必填此参数)
	 *						shareType : 其他媒体资源 三选一
	 *									1 网页 2音乐 3视频
	 *						shareJSON : JSON格式 其他媒体资源的详细描述 如果传shareType则此参数必填
	 *							如果 shareType 为1
	 *								title : 标题
	 *								description : 详情
	 *								actionUrl : 网页url
	 *								imgUrl : 分享图片路径(图片大小不能超过32kb) 只能有一张图片
	 *								imgType : 分享图片类型 0 本地assets图片 1 网络图片 (传imgUrl必填此参数)
	 *								defaultText : 默认文案
	 *							如果 shareType 为2
	 *								title : 标题
	 *								description : 详情
	 *								actionUrl : 网页url
	 *								imgUrl : 分享图片路径(图片大小不能超过32kb) 只能有一张图片
	 *								imgType : 分享图片类型 0 本地assets图片 1 网络图片 (传imgUrl必填此参数)
	 *								defaultText : 默认文案
	 *								dataUrl : 
	 *								dataHdUrl : 
	 *	 						如果 shareType 为3
	 *								title : 标题
	 *								description : 详情
	 *								actionUrl : 网页url
	 *								imgUrl : 分享图片路径(图片大小不能超过32kb) 只能有一张图片
	 *								imgType : 分享图片类型 0 本地assets图片 1 网络图片 (传imgUrl必填此参数)
	 *								defaultText : 默认文案
	 *								dataUrl : 
	 *								dataHdUrl : 
	 *								duration : 持续时间(数字)
	 * 						
	 * @param html 调用新浪微博分享的页面
	 * @param callBack 回调函数
	 */
    sinaWeiboShare : function(paramsJSON,html,callBack){
    	window.utils.sinaWeiboShare(sinakey, JSON.stringify(paramsJSON),html,Utils.removeJsComments(callBack.toString()));
    },
    checkUpdate : function(versionUrl,savePath,saveFileName){
    	window.utils.checkUpdate(versionUrl,savePath,saveFileName);
    },
    /**
     * 打开点播播放器并切换到横屏播放
     */
    playVideo : function(url){
    	window.utils.playVideo(url);
    }
};